home *** CD-ROM | disk | FTP | other *** search
/ Mac Mania 2 / MacMania 2.toast / Demo's / Tools&Utilities / Programming / AD Programmer package / Programming Examples / Generic in Pascal / GraphicsModule_main.p < prev    next >
Encoding:
Text File  |  1991-06-03  |  1.7 KB  |  75 lines  |  [TEXT/PJMM]

  1. {}
  2. {    main.p}
  3. {    }
  4. {    This is a simple main function that handles the messages passed by After Dark to a }
  5. {    graphics module. }
  6. {    }
  7. {    This source file can be used as is for both Think Pascal 3.0 and MPW Pascal 3.0  }
  8. {    By Patrick Beard and Bruce Burkhalter and Colin Glassey.}
  9. {    © 1989,1990,1991 Berkeley Systems, Inc. }
  10. {}
  11.  
  12. unit GraphicsModule_main;
  13.  
  14. interface
  15.  
  16. {$SETC THINK_PASCAL := FALSE; }
  17.    { !!! Delete or change this line for Think Pascal 3.0 !!! }
  18. {$IFC THINK_PASCAL}
  19.     uses
  20.         Sound, GraphicsModuleTypes;  { Think Pascal automatically includes Quickdraw definitions }
  21. {$ELSEC}
  22.     uses
  23.         QuickDraw, Sound, GraphicsModuleTypes;  { MPW does not }
  24. {$ENDC}
  25.  
  26.     function main (var storage: Handle; blankRgn: rgnHandle; message: integer; params: GMParamBlockPtr): OSErr;
  27.  
  28. implementation
  29.  
  30.     function DoInitialize (var storage: Handle; blankRgn: rgnHandle; params: GMParamBlockPtr): OSErr;
  31.     external;
  32.  
  33.     function DoClose (storage: Handle; blankRgn: RgnHandle; params: GMParamBlockPtr): OSErr;
  34.     external;
  35.  
  36.     function DoBlank (storage: Handle; blankRgn: rgnHandle; params: GMParamBlockPtr): OSErr;
  37.     external;
  38.  
  39.     function DoDrawFrame (storage: Handle; blankRgn: rgnHandle; params: GMParamBlockPtr): OSErr;
  40.     external;
  41.  
  42.     function DoSetup (blankRgn: rgnHandle; message: integer; params: GMParamBlockPtr): OSErr;
  43.     external;
  44.  
  45.     function main;
  46.         var
  47.             err: OSErr;
  48.     begin {main}
  49.  
  50.         err := noErr;
  51.  
  52.         case message of
  53.  
  54.             Initialize: 
  55.                 err := DoInitialize(storage, blankRgn, params);
  56.  
  57.             Close: 
  58.                 err := DoClose(storage, blankRgn, params);
  59.  
  60.             Blank: 
  61.                 err := DoBlank(storage, blankRgn, params);
  62.  
  63.             DrawFrame: 
  64.                 err := DoDrawFrame(storage, blankRgn, params);
  65.  
  66.             otherwise
  67.                 if (message >= ButtonMessage) then
  68.                     err := DoSetup(blankRgn, message, params);
  69.  
  70.         end;
  71.  
  72.         main := err;
  73.  
  74.     end; {main}
  75. end.